import os
from flask_script import Manager
from flask_migrate import Migrate, MigrateCommand

from exts import app
from apps.models.base import db

from apps.models.dance import Dance
from apps.models.course import Course
from apps.models.course_cate import CourseCate
from apps.models.level import Level
from apps.models.lesson import Lesson
from apps.models.musics import Music


manager = Manager(app)

Migrate(app, db)
manager.add_command('db', MigrateCommand)

__exams = [[
    # 一级考试
    [{
        'title': "",
        'dances': [{
            'index': 1,
            'name': "走步",
            'url': 1
        }, {
            'index': 2,
            'name': "音乐反应（一）",
            'url': 2
        }]
    }, {
        'title': "地面",
        'dances': [{
            'index': 3,
            'name': "扩指",
            'url': 3
        }, {
            'index': 4,
            'name': "弯腰、转腰",
            'url': 5
        }, {
            'index': 5,
            'name': "前压腿",
            'url': 6
        }]
    }, {
        'title': "中间",
        'dances': [{
            'index': 6,
            'name': "脚位",
            'url': 8
        }, {
            'index': 7,
            'name': "头的动作",
            'url': 9
        }, {
            'index': 8,
            'name': "摆臂",
            'url': 10
        }, {
            'index': 9,
            'name': "蹦跳步",
            'url': 11
        }]
    }], [{
        'title': "",
        'dances': [{
            'index': 1,
            'name': "走步",
            'url': 1
        }, {
            'index': 2,
            'name': "音乐反应（二）",
            'url': 0
        }]
    }, {
        'title': "地面",
        'dances': [{
            'index': 3,
            'name': "手臂动作",
            'url': 4
        }, {
            'index': 4,
            'name': "弯腰、转腰",
            'url': 5
        }, {
            'index': 5,
            'name': "双吸腿",
            'url': 7
        }]
    }, {
        'title': "中间",
        'dances': [{
            'index': 6,
            'name': "脚位",
            'url': 8
        }, {
            'index': 7,
            'name': "头的动作",
            'url': 9
        }, {
            'index': 8,
            'name': "摆臂",
            'url': 10
        }, {
            'index': 9,
            'name': "平踏步",
            'url': 12
        }]
    }]], [
    # 二级考试
    [{
        'title': "",
        'dances': [{
            'index': 1,
            'name': "走步和敬礼",
            'url': 1
        }, {
            'index': 2,
            'name': "音乐反应（一）",
            'url': 2
        }]
    }, {
        'title': "地面",
        'dances': [{
            'index': 3,
            'name': "手位",
            'url': 3
        }, {
            'index': 4,
            'name': "勾绷脚",
            'url': 4
        }, {
            'index': 5,
            'name': "含胸、展胸",
            'url': 5
        }]
    }, {
        'title': "中间",
        'dances': [{
            'index': 6,
            'name': "推指、绕腕",
            'url': 8
        }, {
            'index': 7,
            'name': "头的动作",
            'url': 9
        }, {
            'index': 8,
            'name': "青蛙跳",
            'url': 11
        }, {
            'index': 9,
            'name': "模仿与想象",
            'url': 14
        }]
    }], [{
        'title': "",
        'dances': [{
            'index': 1,
            'name': "走步和敬礼",
            'url': 1
        }, {
            'index': 2,
            'name': "音乐反应（二）",
            'url': 0
        }]
    }, {
        'title': "地面",
        'dances': [{
            'index': 3,
            'name': "手位",
            'url': 3
        }, {
            'index': 4,
            'name': "提腰、松腰",
            'url': 6
        }, {
            'index': 5,
            'name': "旁开腿",
            'url': 7
        }]
    }, {
        'title': "中间",
        'dances': [{
            'index': 6,
            'name': "推指、绕腕",
            'url': 8
        }, {
            'index': 7,
            'name': "半蹲",
            'url': 10
        }, {
            'index': 8,
            'name': "鸡走步",
            'url': 12
        }, {
            'index': 9,
            'name': "模仿与想象",
            'url': 14
        }]
    }]], [
    # 三级考试
    [{
        'title': "",
        'dances': [{
            'index': 1,
            'name': "吸跳步和敬礼",
            'url': 1
        }, {
            'index': 2,
            'name': "音乐反应（一）",
            'url': 2
        }]
    }, {
        'title': "地面",
        'dances': [{
            'index': 3,
            'name': "波浪",
            'url': 3
        }, {
            'index': 4,
            'name': "弯腰",
            'url': 4
        }, {
            'index': 5,
            'name': "勾绷脚",
            'url': 5
        }, {
            'index': 6,
            'name': "吸伸腿",
            'url': 6
        }]
    }, {
        'title': "中间",
        'dances': [{
            'index': 7,
            'name': "手位",
            'url': 8
        }, {
            'index': 8,
            'name': "半蹲",
            'url': 10
        }, {
            'index': 9,
            'name': "鸭走步",
            'url': 12
        }, {
            'index': 10,
            'name': "踏点步",
            'url': 14
        }]
    }], [{
        'title': "",
        'dances': [{
            'index': 1,
            'name': "吸跳步和敬礼",
            'url': 1
        }, {
            'index': 2,
            'name': "音乐反应（二）",
            'url': 0
        }]
    }, {
        'title': "地面",
        'dances': [{
            'index': 3,
            'name': "波浪",
            'url': 3
        }, {
            'index': 4,
            'name': "弯腰",
            'url': 4
        }, {
            'index': 5,
            'name': "勾绷脚",
            'url': 5
        }, {
            'index': 6,
            'name': "后吸腿",
            'url': 7
        }]
    }, {
        'title': "中间",
        'dances': [{
            'index': 7,
            'name': "松肩",
            'url': 9
        }, {
            'index': 8,
            'name': "踮脚走",
            'url': 11
        }, {
            'index': 9,
            'name': "蹦跳步",
            'url': 13
        }, {
            'index': 10,
            'name': "模仿与想象",
            'url': 15
        }]
    }]], [
    # 四级考试
    [{
        'title': "地面",
        'dances': [{
            'index': 1,
            'name': "单手位",
            'url': 3
        }, {
            'index': 2,
            'name': "勾绷脚",
            'url': 6
        }, {
            'index': 3,
            'name': "后抬腿",
            'url': 8
        }, {
            'index': 4,
            'name': "压腿",
            'url': 10
        }]
    }, {
        'title': "中间",
        'dances': [{
            'index': 5,
            'name': "二拍舞步",
            'url': 1
        }, {
            'index': 6,
            'name': "掰膀子",
            'url': 15
        }, {
            'index': 7,
            'name': "藏族舞",
            'url': 18
        }, {
            'index': 8,
            'name': "结束动作",
            'url': 20
        }]
    }], [{
        'title': "地面",
        'dances': [{
            'index': 1,
            'name': "波浪",
            'url': 4
        }, {
            'index': 2,
            'name': "抱端腿",
            'url': 9
        }, {
            'index': 3,
            'name': "前踢腿",
            'url': 11
        }]
    }, {
        'title': "中间",
        'dances': [{
            'index': 4,
            'name': "节拍练习2/4",
            'url': 17
        }, {
            'index': 5,
            'name': "碎步",
            'url': 14
        }, {
            'index': 6,
            'name': "小跳",
            'url': 16
        }, {
            'index': 7,
            'name': "东北秧歌",
            'url': 19
        }, {
            'index': 8,
            'name': "结束动作",
            'url': 20
        }]
    }], [{
        'title': "地面",
        'dances': [{
            'index': 1,
            'name': "单手位",
            'url': 3
        }, {
            'index': 2,
            'name': "压胯",
            'url': 5
        }, {
            'index': 3,
            'name': "前抬腿",
            'url': 7
        }, {
            'index': 4,
            'name': "后踢腿",
            'url': 12
        }]
    }, {
        'title': "中间",
        'dances': [{
            'index': 5,
            'name': "三拍舞步",
            'url': 2
        }, {
            'index': 6,
            'name': "脚位",
            'url': 13
        }, {
            'index': 7,
            'name': "藏族舞",
            'url': 18
        }, {
            'index': 8,
            'name': "结束动作",
            'url': 20
        }]
    }]], [
    # 五级考试
    [{
        'title': "地面",
        'dances': [{
            'index': 1,
            'name': "双手位",
            'url': 2
        }, {
            'index': 2,
            'name': "勾绷脚",
            'url': 4
        }, {
            'index': 3,
            'name': "压腿",
            'url': 8
        }, {
            'index': 4,
            'name': "后踢腿",
            'url': 10
        }]
    }, {
        'title': "扶把",
        'dances': [{
            'index': 5,
            'name': "半蹲",
            'url': 13
        }, {
            'index': 6,
            'name': "小跳（一）",
            'url': 14
        }]
    }, {
        'title': "中间",
        'dances': [{
            'index': 7,
            'name': "推指",
            'url': 15
        }, {
            'index': 8,
            'name': "东北秧歌",
            'url': 21
        }, {
            'index': 9,
            'name': "结束动作",
            'url': 22
        }]
    }], [{
        'title': "地面",
        'dances': [{
            'index': 1,
            'name': "手、眼动作",
            'url': 3
        }, {
            'index': 2,
            'name': "旁抬腿",
            'url': 6
        }, {
            'index': 3,
            'name': "前、旁大踢腿",
            'url': 9
        }]
    }, {
        'title': "扶把",
        'dances': [{
            'index': 4,
            'name': "脚位",
            'url': 12
        }, {
            'index': 5,
            'name': "半蹲",
            'url': 13
        }]
    }, {
        'title': "中间",
        'dances': [{
            'index': 6,
            'name': "波浪",
            'url': 16
        }, {
            'index': 7,
            'name': "节拍练习3/4",
            'url': 19
        }, {
            'index': 8,
            'name': "东北秧歌",
            'url': 21
        }, {
            'index': 9,
            'name': "结束动作",
            'url': 22
        }]
    }], [{
        'title': "地面",
        'dances': [{
            'index': 1,
            'name': "双手位",
            'url': 2
        }, {
            'index': 2,
            'name': "小弹腿",
            'url': 5
        }, {
            'index': 3,
            'name': "后弯腰",
            'url': 7
        }]
    }, {
        'title': "扶把",
        'dances': [{
            'index': 4,
            'name': "脚位",
            'url': 12
        }, {
            'index': 5,
            'name': "小跳（一）",
            'url': 14
        }]
    }, {
        'title': "中间",
        'dances': [{
            'index': 6,
            'name': "二拍舞步",
            'url': 1
        }, {
            'index': 7,
            'name': "点转步",
            'url': 17
        }, {
            'index': 8,
            'name': "藏族舞",
            'url': 20
        }, {
            'index': 9,
            'name': "结束动作",
            'url': 22
        }]
    }]], [
    # 六级考试
    [{
        'title': "地面",
        'dances': [{
            'index': 1,
            'name': "波浪（一）",
            'url': 3
        }, {
            'index': 2,
            'name': "环动",
            'url': 6
        }, {
            'index': 3,
            'name': "后弯腰、后踢腿",
            'url': 9
        }]
    }, {
        'title': "扶把",
        'dances': [{
            'index': 4,
            'name': "蹲",
            'url': 11
        }, {
            'index': 5,
            'name': "小跳（一）",
            'url': 14
        }]
    }, {
        'title': "中间",
        'dances': [{
            'index': 6,
            'name': "三拍舞步",
            'url': 1
        }, {
            'index': 7,
            'name': "双脚转",
            'url': 18
        }, {
            'index': 8,
            'name': "蒙古族舞",
            'url': 22
        }, {
            'index': 9,
            'name': "结束动作",
            'url': 23
        }]
    }], [{
        'title': "地面",
        'dances': [{
            'index': 1,
            'name': "摊推手",
            'url': 2
        }, {
            'index': 2,
            'name': "勾蹦脚",
            'url': 4
        }, {
            'index': 3,
            'name': "前、旁大踢腿",
            'url': 8
        }]
    }, {
        'title': "扶把",
        'dances': [{
            'index': 4,
            'name': "蹲",
            'url': 11
        }, {
            'index': 5,
            'name': "擦地",
            'url': 12
        }]
    }, {
        'title': "中间",
        'dances': [{
            'index': 6,
            'name': "波浪（二）",
            'url': 17
        }, {
            'index': 7,
            'name': "重拍练习",
            'url': 20
        }, {
            'index': 8,
            'name': "藏族舞",
            'url': 21
        }, {
            'index': 9,
            'name': "结束动作",
            'url': 23
        }]
    }], [{
        'title': "地面",
        'dances': [{
            'index': 1,
            'name': "波浪（一）",
            'url': 3
        }, {
            'index': 2,
            'name': "弹腿",
            'url': 5
        }, {
            'index': 3,
            'name': "压腿",
            'url': 7
        }]
    }, {
        'title': "扶把",
        'dances': [{
            'index': 4,
            'name': "擦地",
            'url': 12
        }, {
            'index': 5,
            'name': "弯腰",
            'url': 13
        }]
    }, {
        'title': "中间",
        'dances': [{
            'index': 6,
            'name': "女双手位",
            'url': 15
        }, {
            'index': 7,
            'name': "小跳（二）",
            'url': 19
        }, {
            'index': 8,
            'name': "蒙古族舞",
            'url': 22
        }, {
            'index': 9,
            'name': "结束动作",
            'url': 23
        }]
    }]], [
    # 七级考试
    [{
        'title': "地面",
        'dances': [{
            'index': 1,
            'name': "提、沉、含、仰",
            'url': 3
        }, {
            'index': 2,
            'name': "压腿",
            'url': 8
        }, {
            'index': 3,
            'name': "前、旁大踢腿",
            'url': 9
        }]
    }, {
        'title': "扶把",
        'dances': [{
            'index': 4,
            'name': "擦地",
            'url': 12
        }, {
            'index': 5,
            'name': " 弯腰（一）",
            'url': 14
        }]
    }, {
        'title': "中间",
        'dances': [{
            'index': 6,
            'name': "晃手",
            'url': 17
        }, {
            'index': 7,
            'name': "小跳（二）",
            'url': 21
        }, {
            'index': 8,
            'name': "云南花灯",
            'url': 23
        }, {
            'index': 9,
            'name': "结束动作",
            'url': 25
        }]
    }], [{
        'title': "地面",
        'dances': [{
            'index': 1,
            'name': "横移、转腰",
            'url': 4
        }, {
            'index': 2,
            'name': "弹、撩腿",
            'url': 6
        }, {
            'index': 3,
            'name': "后弯腰、后踢腿",
            'url': 10
        }]
    }, {
        'title': "扶把",
        'dances': [{
            'index': 4,
            'name': "蹲",
            'url': 11
        }, {
            'index': 5,
            'name': "小抬、小踢腿",
            'url': 13
        }]
    }, {
        'title': "中间",
        'dances': [{
            'index': 6,
            'name': "三拍舞步",
            'url': 2
        }, {
            'index': 7,
            'name': "双脚转",
            'url': 19
        }, {
            'index': 8,
            'name': "藏族舞",
            'url': 24
        }, {
            'index': 9,
            'name': "结束动作",
            'url': 25
        }]
    }], [{
        'title': "地面",
        'dances': [{
            'index': 1,
            'name': "提、沉、含、仰",
            'url': 3
        }, {
            'index': 2,
            'name': "勾蹦脚",
            'url': 5
        }, {
            'index': 3,
            'name': "大环动",
            'url': 7
        }]
    }, {
        'title': "扶把",
        'dances': [{
            'index': 4,
            'name': "端、掖、吸腿",
            'url': 15
        }, {
            'index': 5,
            'name': "踮脚",
            'url': 16
        }]
    }, {
        'title': "中间",
        'dances': [{
            'index': 6,
            'name': "二拍舞步",
            'url': 1
        }, {
            'index': 7,
            'name': "弯腰（二）",
            'url': 18
        }, {
            'index': 8,
            'name': "小跳（一）",
            'url': 20
        }, {
            'index': 9,
            'name': "云南花灯",
            'url': 23
        }, {
            'index': 10,
            'name': "结束动作",
            'url': 25
        }]
    }]], [
    # 八级考试
    [{
        'title': "地面",
        'dances': [{
            'index': 1,
            'name': "提、沉、转腰",
            'url': 3
        }, {
            'index': 2,
            'name': "踢、撩腿",
            'url': 5
        }, {
            'index': 3,
            'name': "大踢腿（一）",
            'url': 8
        }]
    }, {
        'title': "扶把",
        'dances': [{
            'index': 4,
            'name': "擦地",
            'url': 9
        }, {
            'index': 5,
            'name': " 吸、伸腿",
            'url': 13
        }]
    }, {
        'title': "中间",
        'dances': [{
            'index': 6,
            'name': "圆场",
            'url': 1
        }, {
            'index': 7,
            'name': "平转",
            'url': 17
        }, {
            'index': 8,
            'name': "傣族舞",
            'url': 23
        }, {
            'index': 9,
            'name': "结束动作",
            'url': 24
        }]
    }], [{
        'title': "地面",
        'dances': [{
            'index': 1,
            'name': "含展、横移",
            'url': 4
        }, {
            'index': 2,
            'name': "大环动",
            'url': 6
        }]
    }, {
        'title': "扶把",
        'dances': [{
            'index': 3,
            'name': "端、掖腿蹲",
            'url': 12
        }, {
            'index': 4,
            'name': "大踢腿（二）",
            'url': 14
        }]
    }, {
        'title': "中间",
        'dances': [{
            'index': 5,
            'name': "速度反应",
            'url': 20
        }, {
            'index': 6,
            'name': "弯腰",
            'url': 16
        }, {
            'index': 7,
            'name': "小跳（二）",
            'url': 19
        }, {
            'index': 8,
            'name': "维吾尔族舞",
            'url': 22
        }, {
            'index': 9,
            'name': "结束动作",
            'url': 24
        }]
    }], [{
        'title': "地面",
        'dances': [{
            'index': 1,
            'name': "提、沉、转腰",
            'url': 3
        }, {
            'index': 2,
            'name': "压、扳腿",
            'url': 7
        }]
    }, {
        'title': "扶把",
        'dances': [{
            'index': 3,
            'name': "蹲",
            'url': 10
        }, {
            'index': 4,
            'name': "小踢、弹腿 ",
            'url': 11
        }]
    }, {
        'title': "中间",
        'dances': [{
            'index': 5,
            'name': "四拍舞步",
            'url': 2
        }, {
            'index': 6,
            'name': "盘手",
            'url': 15
        }, {
            'index': 7,
            'name': "小跳（一）",
            'url': 18
        }, {
            'index': 8,
            'name': "蒙古族舞",
            'url': 21
        }, {
            'index': 9,
            'name': "结束动作",
            'url': 24
        }]
    }]], [
    # 九级考试
    [{
        'title': "地面",
        'dances': [{
            'index': 1,
            'name': "含仰、旁提",
            'url': 3
        }, {
            'index': 2,
            'name': "综合组合（二）",
            'url': 5
        }]
    }, {
        'title': "扶把",
        'dances': [{
            'index': 3,
            'name': "小踢、弹腿",
            'url': 8
        }, {
            'index': 4,
            'name': "舞姿（一）",
            'url': 9
        }]
    }, {
        'title': "中间",
        'dances': [{
            'index': 5,
            'name': "弯腰",
            'url': 13
        }, {
            'index': 6,
            'name': "摇臂",
            'url': 15
        }, {
            'index': 7,
            'name': "小、中跳",
            'url': 18
        }, {
            'index': 8,
            'name': "东北秧歌",
            'url': 22
        }, {
            'index': 9,
            'name': "维吾尔族舞",
            'url': 20
        }, {
            'index': 9,
            'name': "结束动作",
            'url': 23
        }]
    }], [{
        'title': "地面",
        'dances': [{
            'index': 1,
            'name': "含仰、旁提",
            'url': 3
        }, {
            'index': 2,
            'name': "综合组合（二）",
            'url': 5
        }]
    }, {
        'title': "扶把",
        'dances': [{
            'index': 3,
            'name': "蹲、弯腰",
            'url': 7
        }, {
            'index': 4,
            'name': "大踢腿",
            'url': 11
        }]
    }, {
        'title': "中间",
        'dances': [{
            'index': 5,
            'name': "舞姿（二）",
            'url': 12
        }, {
            'index': 6,
            'name': "平转",
            'url': 14
        }, {
            'index': 7,
            'name': "小、中跳",
            'url': 18
        }, {
            'index': 8,
            'name': "朝鲜族舞",
            'url': 21
        }, {
            'index': 9,
            'name': "东北秧歌",
            'url': 22
        }, {
            'index': 9,
            'name': "结束动作",
            'url': 23
        }]
    }]], [
    # 十级考试
    [{
        'title': "地面",
        'dances': [{
            'index': 1,
            'name': "冲靠、平圆",
            'url': 3
        }, {
            'index': 2,
            'name': "综合组合（二）",
            'url': 5
        }]
    }, {
        'title': "扶把",
        'dances': [{
            'index': 3,
            'name': "擦地",
            'url': 7
        }, {
            'index': 4,
            'name': "舞姿（一）",
            'url': 9
        }]
    }, {
        'title': "中间",
        'dances': [{
            'index': 5,
            'name': "圆场、花帮步",
            'url': 1
        }, {
            'index': 6,
            'name': "弯腰",
            'url': 13
        }, {
            'index': 7,
            'name': "穿手",
            'url': 15
        }, {
            'index': 8,
            'name': "双脚小跳",
            'url': 16
        }, {
            'index': 9,
            'name': "混合节拍反应",
            'url': 19
        }, {
            'index': 10,
            'name': "云南花灯",
            'url': 22
        }, {
            'index': 11,
            'name': "蒙古族舞",
            'url': 20
        }, {
            'index': 12,
            'name': "结束动作",
            'url': 23
        }]
    }], [{
        'title': "地面",
        'dances': [{
            'index': 1,
            'name': "冲靠、平圆",
            'url': 3
        }, {
            'index': 2,
            'name': "综合组合（一）",
            'url': 4
        }]
    }, {
        'title': "扶把",
        'dances': [{
            'index': 3,
            'name': "蹲、弯腰",
            'url': 6
        }, {
            'index': 4,
            'name': "小踢腿",
            'url': 8
        }]
    }, {
        'title': "中间",
        'dances': [{
            'index': 5,
            'name': "四拍舞步",
            'url': 2
        }, {
            'index': 6,
            'name': "大踢腿",
            'url': 11
        }, {
            'index': 7,
            'name': " 舞姿（二）",
            'url': 12
        }, {
            'index': 8,
            'name': "平转",
            'url': 14
        }, {
            'index': 9,
            'name': "舞姿小跳",
            'url': 17
        }, {
            'index': 10,
            'name': "朝鲜族舞",
            'url': 21
        }, {
            'index': 11,
            'name': "蒙古族舞",
            'url': 20
        }, {
            'index': 12,
            'name': "结束动作",
            'url': 23
        }]
    }]], [
    # 十一级考试
    [{
        'title': "地面",
        'new': 'true',
        'dances': [{
            'index': 1,
            'name': "旁提、立园",
            'url': 1
        }]
    }, {
        'title': "中间",
        'dances': [{
            'index': 2,
            'name': "大踢腿",
            'url': 5
        }, {
            'index': 3,
            'name': "双晃手",
            'url': 3
        }, {
            'index': 4,
            'name': "翻身",
            'url': 6
        }, {
            'index': 5,
            'name': "小跳",
            'url': 9
        }, {
            'index': 6,
            'name': "东北秧歌",
            'url': 11
        }, {
            'index': 7,
            'name': "藏族舞",
            'url': 13
        }, {
            'index': 8,
            'name': "结束动作",
            'url': 15
        }]
    }], [{
        'title': "地面",
        'dances': [{
            'index': 1,
            'name': "旁提、立园",
            'url': 1
        }]
    }, {
        'title': "中间",
        'dances': [{
            'index': 2,
            'name': "舞姿",
            'url': 4
        }, {
            'index': 3,
            'name': "风火轮",
            'url': 8
        }, {
            'index': 4,
            'name': "平转",
            'url': 7
        }, {
            'index': 5,
            'name': "小跳",
            'url': 9
        }, {
            'index': 6,
            'name': "傣族舞",
            'url': 12
        }, {
            'index': 7,
            'name': "彝族舞",
            'url': 14
        }, {
            'index': 8,
            'name': "结束动作",
            'url': 15
        }]
    }]], [
    # 十二级考试
    [{
        'title': "地面",
        'dances': [{
            'index': 1,
            'name': "提沉冲靠含仰移",
            'url': 1
        }]
    }, {
        'title': "中间",
        'dances': [{
            'index': 2,
            'name': "慢步",
            'url': 2
        }, {
            'index': 3,
            'name': "大踢腿",
            'url': 5
        }, {
            'index': 4,
            'name': "转组合",
            'url': 7
        }, {
            'index': 5,
            'name': "小跳",
            'url': 8
        }, {
            'index': 6,
            'name': "云南花灯",
            'url': 10
        }, {
            'index': 7,
            'name': "朝鲜族舞",
            'url': 11
        }, {
            'index': 8,
            'name': "结束动作",
            'url': 14
        }]
    }], [{
        'title': "地面",
        'dances': [{
            'index': 1,
            'name': "提沉冲靠含仰移",
            'url': 1
        }]
    }, {
        'title': "中间",
        'dances': [{
            'index': 2,
            'name': "大踢腿",
            'url': 5
        }, {
            'index': 3,
            'name': "舞姿",
            'url': 4
        }, {
            'index': 4,
            'name': "眼睛练习",
            'url': 3
        }, {
            'index': 5,
            'name': "翻身",
            'url': 6
        }, {
            'index': 6,
            'name': "维吾尔族舞",
            'url': 12
        }, {
            'index': 7,
            'name': "傣族舞",
            'url': 13
        }, {
            'index': 8,
            'name': "结束动作",
            'url': 14
        }]
    }]], [
    # 十三级考试
    [{
        'title': "第一部分",
        'dances': [{
            'index': 1,
            'name': "刚武",
            'url': 1
        }, {
            'index': 2,
            'name': "灵巧",
            'url': 2
        }, {
            'index': 3,
            'name': "朝鲜族舞",
            'url': 5
        }, {
            'index': 4,
            'name': "藏族舞",
            'url': 8
        }]
    }, {
        'title': "第二部分",
        'dances': [{
            'index': 1,
            'name': "抒情",
            'url': 3
        }, {
            'index': 2,
            'name': "维吾尔族舞",
            'url': 4
        }, {
            'index': 3,
            'name': "蒙古族舞",
            'url': 6
        }, {
            'index': 4,
            'name': "东北秧歌",
            'url': 7
        }, {
            'index': 5,
            'name': "结束动作",
            'url': 9
        }]
    }]]]


# shell创建一个用户
@manager.option('-u', '--username', dest='username')
@manager.option('-p', '--password', dest='password')
@manager.option('-e', '--email', dest='email')
def create_cms_user(username, password, email):
    pass


# 添加测试舞种
@manager.command
def create_test_dance():
    with db.auto_commit():
        dance_model = Dance()
        dance_model.name = '中国舞'
        dance_model.type = 1
        dance_model.logo = ''
        db.session.add(dance_model)
    print('测试舞种添加成功！')


# 添加测试级别
@manager.command
def create_test_level():
    levels = []
    for idx in range(1, 14):
        level_model = Level()
        level_model.dance_id = 1
        level_model.name = '%s%s' % (idx, '级舞蹈培训视频+考试组合')
        level_model.image = 'levelImages/level_{}.jpg'.format(idx)
        level_model.desc = ''
        levels.append(level_model)

    with db.auto_commit():
        db.session.add_all(levels)


# 添加课程数据
@manager.command
def create_test_courseCate():
    my_level_list = []
    for level in __exams:
        level_list = level
        course_cate_count = len(level_list)
        my_cousre_list = []
        for index, course_list in enumerate(level_list):
            course_cate_name = '分类{}'.format(index + 1)
            my_cousre_dic = {
                'course_cate': course_cate_name,
                'course_list': course_list
            }
            my_cousre_list.append(my_cousre_dic)
        my_level_list.append(my_cousre_list)
    print(my_level_list)

    # 构造添加分类数据
    # course_cate_model_list = []
    # for index, level_list in enumerate(my_level_list):
    #     for course in level_list:
    #         courseCate_model = CourseCate()
    #         courseCate_model.level_id = index + 1
    #         courseCate_model.name = course['course_cate']
    #         course_cate_model_list.append(courseCate_model)
    # with app.app_context():
    #     with db.auto_commit():
    #         db.session.add_all(course_cate_model_list)

    # 构造添加课程数据
    # with app.app_context():
    #     course_model_list = []
    #     for index, level_list in enumerate(my_level_list):
    #         for course in level_list:
    #             course_info_list = course['course_list']
    #             for course_info in course_info_list:
    #                 course_model = Course()
    #                 course_model.level_id = index + 1
    #
    #                 course_cate = CourseCate.query.filter(CourseCate.level_id==course_model.level_id, CourseCate.name==course['course_cate']).first()
    #                 course_model.cate_id = course_cate.id
    #                 course_model.name = course_info['title']
    #                 course_model_list.append(course_model)
    #
    #     with db.auto_commit():
    #         db.session.add_all(course_model_list)

    # 构造添加课节数据
    with app.app_context():
        lesson_model_list = []
        for index, level_list in enumerate(my_level_list):
            for course in level_list:
                course_info_list = course['course_list']
                lesson_n = 1
                level_id = index + 1

                course_cate = CourseCate.query.filter(CourseCate.level_id == level_id,
                                                      CourseCate.name == course['course_cate']).first()

                for course_info in course_info_list:
                    lesson_list = course_info['dances']
                    course_model = Course.query.filter(Course.level_id == level_id,
                                                       Course.cate_id == course_cate.id,
                                                       Course.name == course_info['title']).first()
                    for lesson in lesson_list:
                        lesson_model = Lesson()

                        lesson_model.course_id = course_model.id
                        lesson_model.name = lesson['name']
                        lesson_model.url = getVideoUrl(course_model.level_id, lesson['url']) if getVideoUrl(course_model.level_id, lesson['url']) else ''
                        lesson_model.lesson_n = lesson_n
                        lesson_model.cate_id = course_cate.id

                        lesson_n += 1

                        lesson_model_list.append(lesson_model)

        with db.auto_commit():
            db.session.add_all(lesson_model_list)


def addMusiclist():
    with app.app_context():
        course_cates = CourseCate.query.all()
        music_model_list = []
        for cate in course_cates:
            level_model = Level.query.filter_by(id=cate.level_id).first()

            lessons = Lesson.query.filter_by(cate_id=cate.id).all()

            for index, lesson in enumerate(lessons):
                if cate.id == lesson.cate_id:
                    music = Music()

                    url = getMusicUrl(str(level_model.id), lesson.name)
                    music.cate_id = lesson.cate_id
                    music.title = lesson.name
                    music.url = url
                    music._from = '官方'
                    music.lesson_n = index + 1

                    if url:
                        music_model_list.append(music)

        with db.auto_commit():
            db.session.add_all(music_model_list)
            db.session.commit()

@manager.command
def getMusicUrl(level, name):

    music_file_path = r'/Users/chengjiajun/Desktop/123456/' + level
    music_list = []
    music_dir_list = []
    music_path = '/{0}'.format(level)

    for root, dirs, files in os.walk(music_file_path):
        if files:
            music_list = files
            break
    for n in music_list:
        if '音乐反应曲一' in n:
            n = '音乐反应（一)'
        if '音乐反应曲二' in n:
            n = '音乐反应（二)'
        if name in n:
            music_path += '/{0}'.format(n)
            return music_path
    return ''

def getVideoUrl(level, stmp):
    name = 'video_{}_{}.mp4'.format(level, stmp)
    video_file_path = os.path.abspath(os.path.dirname(os.getcwd())) + '/bw_kj_mina/apps/resource/levelVideos/'
    video_list = []
    for root, dirs, files in os.walk(video_file_path):
        video_list = files
    for video_name in video_list:
        if name == video_name:
            return 'levelVideos/' + video_name


if __name__ == '__main__':
    # manager.run()
    # create_test_courseCate()
    addMusiclist()
